Method and sytem for developing technical configurations

ABSTRACT

A method for developing a technical configuration and electronically delivering to a client from a server an order report for the technical configuration. The method comprises interactively eliciting and electronically receiving from a user on the client a desired technical configuration, wherein the act of interactively eliciting and electronically receiving comprises providing to the client from the server a limited configuration engine and performing a first, limited check on the viability of the desired technical configuration on the client using the limited configuration engine; performing a second, final check on the viability of the desired technical configuration using a full configuration engine on the server; and, in response to the final check, preparing and outputting on the client an electronic order report.

BACKGROUND OF THE INVENTION

1. Field of the Invention

This invention relates to computerized configuration methods andsystems. More particularly, this invention relates to computerizedmethods and systems for developing technical configurations andelectronically delivering order reports to a client. The methods andsystems are implemented in computer hardware and software.

2. Background Information

Large amounts of data and programs for a great variety of tasks arecurrently available on the Internet. Some of these applications areuseful for performing discrete logical tasks, while others are availableto retrieve data. Still other applications are available that may aid inthe selection and customization of products, such as vehicles orcomputers, or services, such as the availability of flights andcorresponding fare information. In these selection/customization toolsfor products or services, the manufacturer of the product or the serviceprovider may offer detailed options for the user's selection, and alarge number of interrelationships may exist between the variousoptions. When these options and interrelationships are complex, largeand detailed software may be necessary for electronic configurationsystems.

The Internet is a collection of computer networks that allows computerusers to share files and other computer resources. Each computerconnected to the Internet has a unique address whose format is definedby the Internet Protocol (“TCP/IP”). The Internet includes a publicnetwork using the TCP/IP and includes two kinds of computers: servers,which provide information and documents; and clients, which retrieve anddisplay documents and information for users. Events that take place onthe server machine are referred to as server-side activities, whileevents that take place on the client machine are known as client-sideactivities. As will be appreciated by those of ordinary skill in theart, as used throughout this specification the term “client” refers to aclient computer (or machine) on a network, or to a process or programs,such as Web browsers, which run on a client computer in order tofacilitate network connectivity and communications. Thus, for example, a“client machine” can store one or more “client processes.” The term“user” is used to refer broadly to one or more persons who use aparticular client machine. Similarly, the term “server” will be usedthroughout this specification to refer to a server computer or computersystem on a network, or to a process or programs which run on a servercomputer.

The “World Wide Web” (“Web”) is that collection of servers on theInternet that utilize the Hypertext Transfer Protocol (“HTTP”). HTTP isa known application protocol that provides users access to resources,which may be information in different formats such as text, graphics,images, sound, video, Hypertext Markup Language (“HTML”), as well asprograms. HTML is a standard page description language which providesbasic document formatting and allows the developer to specify “links” toother servers and files. Links may be specified via a Uniform ResourceLocator (“URL”). Upon specification of a link by the user, the clientmakes a TCP/IP request to a Web server and receives information, whichmay be another “Web page” that is formatted according to HTML, from aserver that was specified in the requested URL. The information returnedto the client may be generated in whole or in part by a program thatexecutes on the server. Such programs are typicallyCommon-Gateway-Interface scripts (“CGI scripts”) and can be writtenusing known programming languages or methods that the server supports,such as PERL or C++.

Servers include both Web servers and applications servers. Web serversare the software or computers responsible for accepting requests fromclients and retrieving the specified file or specified CGI script, andreturning its contents or the CGI script's results to the client. Anapplication server is the actual software or computer which containsprograms, CGI scripts, or data for a specific site. Servers run on avariety of platforms, including UNIX machines, although other platforms,such as Windows 95, Windows NT, and Macintosh may also be used.

Computer users can view information available on servers or networks onthe Web through the use of browsing software, such as NetscapeNavigator, Microsoft Internet Explorer, Mosaic, or Lynx browsers. Atypical Web page is an HTML document with text, “links” that a user mayactivate (e.g. “click on”), as well as embedded URLs pointing toresources, such as images, video or sound, that the client may activateto fully use the Web page in a browser. In some situations, theseresources may not be located on the same server that provided the HTMLdocument to the client. Furthermore, HTTP allows for the transmission ofcertain information from the client to a server. This information can beembedded within the URL, can be contained in HTTP header fields, or canbe posted directly to the server using other known HTTP methods.

Web activity begins on the client side, when a user sends a request to aserver over the Internet. When a user's browser requests informationfrom a server, the server may send information including graphics,instruction sets, sound and video files in addition to HTML documents(Web pages) to the requesting client. In order to view and useinformation from the Web using a browser, the entire HTML document mustbe downloaded from the Internet server to the client's machine and thenprocessed by the browser before the consumer can fully see and accessit. A user may become impatient waiting for a graphics-oriented Web pageor detailed data to appear on his/her computer screen. Informationdelivery on the Internet can be frustrating, because it is much slowerthan delivery of data from the consumer's computer hard drive or mainmemory.

In a server-side application, the client must repeat the processdescribed above, sending a request to a server over the Internet andreceiving information from the server in return, in order for the clientto interact with a server over the Internet. For instance, a user maysupply information in response to queries in a Web page. When the clientclicks on a “submit” button, which initiates interaction over theInternet, the information is passed to the server. As explained above,programs such as CGI scripts may process the information, and the servermay then return a Web page containing the information requested by theuser.

The Web page received by the client from the server may create or set anID field, known as a “client ID” or “cookie,” located in a file on theclient machine to include information about the user's preferences. Whenthe user later returns to a specified URL on the same server, the“client ID” or “cookie” with the previously-set preference informationis transmitted in the HTTP request header to the server, which may thenreturn a Web page that is assembled according to the user-specificinformation. This interactive model for processing information over theInternet is a server-side application, in which most of the logic anddata processing is performed on the server side.

A second possible interactive model is to deliver applications directlyfrom the server to the user's browser, where they are executed on theclient machine. These applications are typically small tools thatperform simple tasks on the client computer, including a variety of HTMLpage display enhancements. In the typical server-side system describedabove, servers perform most of the computational work on the Web, andWeb browsers may be little more than glorified terminals. With so-called“applets” that run within a Web browser to process information and otherclient-side programs, Web technology is shifted more toward the client,relieving some of the computational load from the server. Applets may beused for a variety of functions, and an applet may be a full-fledgedprogram that can perform any number of computational anduser-interactive tasks on the client computer. For instance, an appletmight create a unique set of menus, choices, text fields, and similaruser-input tools different from those available through the browser. Anumber of different languages can be used for client-side programs andapplets, such as Java, ActiveX, JavaScript, Helper-Viewer, and otherplug-ins. Client-side JavaScript, for instance, is a commonly usedprograming language that may be embedded into HTML Web pages and allowsexecutable content, as opposed to data, to be distributed over theInternet. JavaScript also has a limited ability to interact with theuser.

There are problems associated with both client-side and server-sidecomputational and interactive systems. If a client-side approach isused, a large amount of time and/or bandwidth may be used sendinginformation to the client, a majority of which may not be necessary tothe end result desired by the user. When a large amount of time is spenttransferring data over the Internet, this may not only be annoying tothe user, but it may also clog the network with unnecessary datatransfer. Additionally, only a limited amount of space in the memory ofthe client is available. In view of these constraints, client-sideprograms are typically only used for simple validations of informationentered by the user or to generate graphic effects on the client. Largetasks requiring extensive processing (by reason of large executablefiles or extensive data files, or both) are usually not performed on theclient. One result of this may be that interface and options offered tothe client are limited. The client's sense of control over thetransaction may therefore be less than desired.

Server-side programs may also have undesirable attributes. Much likeclient-side systems, a large amount of time may be spent transferringdata to and from the server. In a pure server-side system, each time auser performs an operation on the client machine, a request is sent tothe server to validate the request and perform an operation for transferback to the client. A great deal of time may therefore be spent on thenetwork validating information and processing data on the server. Such asystem puts a heavy load on the server. In addition to these drawbacks,the user may be annoyed by the large amount of time necessary tointeract with the server and update information on the client machine.

It is therefore important to allocate appropriately the processing loadand data transfers between the browser and the server. Some tasks, suchas forms processing and index searches may be better left to the serverside, while others, such as user interface enhancements, real-time datapresentation, and input validation may be better suited for localprocessing on the client. A system and method is needed for interactivenetwork applications to reduce the load on a server, reduce the amountof time required to transfer information over the network, and to savethe user time in performing tasks over the network.

Such a system and method may be particularly useful for complextechnical configuration tasks in which large amounts of both logic anddata may be necessary to successfully configure a product or service.For such technical configuration tasks, a number of constraints ordesirable system attributes exist. First, the user's desiredconfiguration must be viable, meaning that the manufacturer or serviceprovider can assemble the various options desired by the user into aproduct. Second, it is desirable to indicate the price of the fullyassembled configuration at the time of the order. Third, it is desirableto present all or most of the available options for a given product to auser on the client machine.

For some technical configuration tasks, such as products wheremanufacturers offer detailed option choices for configuration,configuring the product may be further complicated by the complexinterrelationships and links between different options. Although in someconfiguration tasks it would be desirable to provide at the client anenvironment that is as option-rich as possible, technical limitationsare encountered that limit the amount of logic and data that may betransferred to the client. For complex configuration tasks, thetransmission of all of the logic to the client may be both timeconsuming and impractical due to memory space; on the other hand, a pureserver-side embodiment may require a large amount of interaction betweenthe server and the client as well as a heavy load on the server.

SUMMARY OF THE INVENTION

One embodiment of the invention is a method for developing a technicalconfiguration and electronically delivering to a client from a server anorder report for the technical configuration. The method comprisesinteractively eliciting and electronically receiving from a user on theclient a desired technical configuration, wherein the act ofinteractively eliciting and electronically receiving comprises providingto the client from the server a limited configuration engine andperforming a first, limited check on the viability of the desiredtechnical configuration on the client using the limited configurationengine; performing a second, final check on the viability of the desiredtechnical configuration using a full configuration engine on the server;and, in response to the final check, preparing and outputting on theclient an electronic order report.

A second embodiment of the invention is a method for creating technicalconfigurations and electronically delivering order reports to at leastone client in a computer network having at least one server connectableto at least one client. The method comprises interactively elicitingfrom a user on the at least one client a desired subset of possibleproducts having technical configurations; in response to the user'sdesired subset of possible products having technical configurations,downloading from the at least one server to the at least one clientlimited configuration information and limited configuration programs;interactively eliciting from the user on the at least one client adesired technical configuration and preliminarily checking at the atleast one client the viability of the desired technical configurationusing the limited configuration information and the limitedconfiguration programs; uploading the desired technical configurationfrom the at least one client to the at least one server and performing afull check on the viability of the desired technical configuration usingfull configuration information and full configuration programs on the atleast one server; and, responsive to the full check, preparing andoutputting on the at least one client an electronic order report.

Another embodiment of the invention is a method for creating vehicleconfigurations and electronically delivering order reports to at leastone client in a computer network having at least one server connectableto at least one client. The method comprises interactively elicitingfrom a user on the at least one client a desired make, model, and seriesfor a vehicle; in response to the user's desired make, model, and seriesfor a vehicle, downloading from the at least one server to the at leastone client limited configuration information and limited configurationprograms; interactively eliciting from the user on the at least oneclient a desired vehicle configuration and preliminarily checking at theat least one client the viability of the desired vehicle configurationusing the limited configuration information and the limitedconfiguration programs; uploading the desired vehicle configuration fromthe at least one client to the at least one server and performing a fullcheck on the viability of the desired vehicle configuration using fullconfiguration information and full configuration programs on the atleast one server; and, responsive to the full check, preparing andoutputting on the at least one client an electronic order report.

The above methods offer a number of advantages. Because limitedconfiguration information and limited configuration programs are sent tothe client, the client is able to do a significant amount of theprocessing involved in creating a technical configuration. At the sametime, interaction with the server may be decreased. In addition, thedata downloaded to the client is properly allocated so that not all ofthe configuration information or configuration programs that exist onthe server are sent to the client. The above methods aid in theallocation of information to the client. The client, therefore, is notoverloaded with processing, and data transfer time is kept to a minimum.

Another embodiment of the invention is a method for developing a productconfiguration in a client-server environment, wherein the server hasfull option attributes and full option rules. The method in thisembodiment comprises receiving initial product configuration data from auser on a client; in response to the initial product configuration data,allocating limited option attributes and limited option rules to theclient by downloading such limited option attributes and limited optionrules to the client; receiving from the client a first proposed productconfiguration developed from client processing of the limited optionattributes and limited option rules; in response to the proposed productconfiguration and application at the server of the full optionattributes and full option rules to the proposed product configuration,allocating and downloading to the client additional option rules; and,receiving from the client a second proposed product configurationdeveloped from client processing of the limited option attributes andadditional option rules.

One advantage of the above method is that data is properly allocatedbetween the client and the server. Limited option attributes and limitedoption rules are sent from the server to the client, so the client isable to do a significant amount of the processing involved in creating atechnical configuration. In addition, the data downloaded to the clientis properly allocated so that not all of the full option attributes andfull option rules that exist on the server are sent to the client. Theclient, therefore, is not overloaded with processing, and data transfertime is kept to a minimum. After a full check of the viability of theproposed product configuration is determined on the server, additionaloption rules may be sent to the client from the server so that the usermay properly configure the product.

Another embodiment of the invention comprises an apparatus for creatingtechnical configurations and electronically delivering order reports toat least one client in a computer network having at least one serverconnectable to at least one client. In this embodiment, the apparatuscomprises a limited configuration engine, wherein the limitedconfiguration engine is downloaded from the at least one server to theat least one client in response to data elicited from the at least oneclient, and wherein the limited configuration engine contains programsto interactively elicit from a user a desired configuration to beuploaded to the at least one server, and a full configuration engine onthe at least one server, wherein the full configuration engine containsinstructions for performing a full check on the viability of the desiredconfiguration.

Yet another embodiment of the invention comprises a computer-readablemedium whose contents cause a computer system to perform a procedure fordeveloping a product configuration in a client-server environment, thecomputer-readable medium having client programs and server programs withfunctions for invocation. In this embodiment, the computer-readablemedium allows for the interactively eliciting from a user on the clienta desired subset of possible products having technical configurations,in response to the user's desired subset of possible products havingtechnical configurations, downloading from the server to the clientlimited configuration information and limited configuration programs,interactively eliciting from the user on the client a desired technicalconfiguration and preliminarily checking at the client the viability ofthe desired technical configuration using the limited configurationinformation and the limited configuration programs, uploading thedesired technical configuration from the client to the server andperforming a full check on the viability of the desired technicalconfiguration using full configuration information and fullconfiguration programs on the server, and responsive to the full check,preparing and outputting on the client an electronic order report.

Much like the methods of the invention above, the above apparatus andcomputer-readable medium properly allocate data and information betweenthe server and the client. The limited configuration engine which issent to the client contains enough data to allow the user to enter adesired configuration, yet a full configuration engine exists on theserver to ensure that the desired configuration is viable. The client,therefore, is not overloaded with processing, and data transfer time iskept to a minimum.

DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram overview a client-server system in which thepresent invention functions;

FIG. 2 is a block diagram of the hardware of the client machine of FIG.1;

FIG. 3 is a block diagram of the software of the client machine of FIG.1;

FIG. 4 is a block diagram of the software and programs on the server ofFIG. 1;

FIG. 5 is a more detailed block diagram overview of the fullconfiguration engine on the server;

FIG. 6 a is a block diagram detailing transmission of informationbetween the client and the server in one embodiment of the presentinvention;

FIG. 6 b is a block diagram detailing transmission of informationbetween the client and the server in a second embodiment of the presentinvention;

FIG. 6 c is a block diagram detailing transmission of informationbetween the client and the server in a third embodiment of the presentinvention;

FIG. 7 is a block diagram overview of the business context of a vehicleordering embodiment of the present invention;

FIG. 8 is a flow chart showing the operation of the vehicle orderingembodiment of the present invention;

FIG. 9 is a diagram of a make/series/model selection page of a vehicleordering embodiment of the present invention;

FIG. 10 is a diagram of a vehicle options selection page of a vehicleordering embodiment of the present invention; and

FIG. 11 is a diagram of a configuration summary page of a vehicleordering embodiment of the present invention.

DETAILED DESCRIPTION

The teachings of the present invention are applicable to many differenttypes of computer networks and may also be used, for instance, inconjunction with direct on-line connections to databases. As will beappreciated by those of ordinary skill in the art, while the followingdiscussion sets forth various preferred implementations of the methodand system of the present invention, these implementations are notintended to be restrictive of the appended claims, nor are they intendedto imply that the claimed invention has limited applicability to onetype of computer network. In this regard, the teachings of the presentinvention are equally applicable for use in Local Area Networks (“LANs”)of all types, Wide Area Networks (“WANs”), private networks, and publicnetworks including the Internet and the Web. While the principlesunderlying the Internet and the Web are described in some detail aboveand below in connection with various aspects of the present invention,this discussion is provided for descriptive purposes only and is notintended to imply any limiting aspects to the broadly claimed methodsand systems of the present invention.

The accompanying Figures depict embodiments of the configuration systemsand methods of the present invention, and features and componentsthereof. With regard to references in this specification to computers,the computers may be any standard computer including standardattachments and components thereof (e.g., a disk drive, hard drive, CDplayer or network server that communicates with a CPU and main memory, asound board, a keyboard and mouse, and a monitor). The processor of theCPU in the computer may be any conventional general purpose single- ormulti-chip microprocessor such as a Pentium® processor, a Pentium® Proprocessor, a 8051 processor, a MIPS® processor, a Power PC® processor,or an ALPHA® processor. In addition, the processor may be anyconventional special purpose processor such as a digital signalprocessor or a graphics processor. The microprocessor has conventionaladdress lines, conventional data lines, and one or more conventionalcontrol lines. With regard to references to software, the software maybe standard software used by those skilled in the art or may be coded inany standard programming language to accomplish the tasks detailedbelow.

a. General Overview

FIG. 1 is a block diagram illustration of the environment of the presentinvention, which is a computer network based on a client-server model.The network comprises one or more servers 10 which are accessible by oneor more clients 12, such as personal computers. (For simplicity, FIG. 1shows only one server 10 and one client 12.) The servers 10 communicatewith the clients 12 over a communication path 20, which may be a LocalArea Network (LAN), Wide Area Network (WAN), direct dial connection, theInternet, or other suitable telecommunications path. A suitable networkprotocol, such as the TCP/IP protocol, may be used for thecommunications. As described above, the servers 10 may comprise Webservers 14 and application servers 16, and may be any computer known tothose skilled in the art. Although FIG. 1 depicts a Web server 14 and anapplication server 16 as separate entities, these two servers 14, 16 mayexist within a single computer or computer system, which, throughoutthis specification, will be referred to as server 10. The server 10allows access by the clients 12 to various network resources. As shownin FIG. 1, a firewall 5 may exist between the Web server 14 andapplication server 16 of the server 10. Such firewalls 5 are known tothose skilled in the art and may be used to prevent unwanted access tothe application server 16.

1. The Client-Side

FIG. 2 is a block diagram of a representative client computer 12. Asdescribed above, the client 12 may be any conventional computer known tothose skilled in the art. The client 12 comprises a processor or CPU andmain memory 22, an input/output interface 24 for communicating withvarious databases, files, programs, and networks, and one or morestorage devices 26. The storage devices 26 may be disk drive devices orCD ROM devices. The client 12 may also have a monitor 28 or other screendevice, a printer or other output device 30, and in input device 32 suchas a keyboard. As is well known in the art, the computer 12 executesprograms stored on a data storage medium, which may be either a memorysystem of the client 12 or a persistent storage device 26, such as adisk or CD ROM system, so as to carry out the functions of the presentinvention.

FIG. 3 is a block diagram illustrating various programs or softwarewhich may run on the client 12 when it will be used for configurationtasks. Although these programs are listed as separate entities in FIG.3, these programs may be included within one software module which maycollectively be referred to as software or a software program. In oneembodiment, these programs as well as the programs on the server, thefunctions of which will be described in more detail below, may becontained on a computer-readable medium, such as a standard floppy disk.In an embodiment where the communication path 20 is the Internet or anIntranet, each of the clients 12 may run a Web browser 42, which is aknown software tool used to access the Web via a connection obtainedthrough an Internet access provider. A variety of browsers 42 known tothose skilled in the art may be used within the scope of the presentinvention, including Netscape Navigator, Microsoft Internet Explorer, orMosaic browsers. In one embodiment, a browser 42 that is capable ofrunning client-side programs, such as JavaScript, may be used. Aninterpreter 43 may exist either within the browser 42 or outside thebrowser 42 on the client 12. This interpreter 43 may be capable ofinterpreting or processing client-side programs within the browser 42 sothat the client-side programs may function within the browser 42. Asexplained above, a Web server 14 may allow access to so-called “Websites” and applications available on application servers 16, as shown inFIG. 1. As is also described above, the location of a resource on aserver 10 may be identified by a URL. The client 12 may also retain asmall “cookie,” as defined in the background section, to retain stateinformation regarding the server 10 to which the client 12 exchangesrequests.

Referring again to FIG. 3, the client 12 may also contain other softwareor programs which may reside in the main memory 22 of the client 12 orwhich may be persistently stored in the storage device 26 of the client12. A limited configuration engine 40 may reside on the client 12. Thislimited configuration engine 40 may contain limited configurationinformation 44 and limited configuration programs 48. As will becomeclear in the following description, the limited configuration engine 40is a portion of a full configuration engine which resides on the server10. The role of the client 12 in the configuration systems and methodsis to display screens, allow the user to fill in information on thescreens, perform limited, discrete logic tasks on the information on thescreens at the client 12 level, and to exchange data with the server 10.

The limited configuration information 44 is essentially a set of datafor specifying a particular product or service (throughout the remainderof this specification, the term product will be used to refer to aproduct or service). For instance, the data may consist of a set oflimited option attributes 46 and limited option rules 47 for a givenproduct. An option attribute 46 may be a feature or option of a product,such as a type of engine or transmission in a vehicle along with thecorresponding price, from which a user chooses in configuring a product.The data may also consist of a set of limited option rules 47 for aproduct. The option rules 47 consist of a set of logic rules that linksor defines relationships between certain of the option attributes 46.For instance, if the configuration system and method is for a vehicle, acertain type of emissions system or transmission may only be availablefor certain engine types, or certain interior color schemes may only beavailable for certain exterior color packages. If A, B, and C are threedifferent option attributes 46 for a product or service, various optionrules 47 may include, but are not limited to, the following:

if A, then B (meaning that if option attribute A is selected, thenoption attribute B is automatically selected as well);

if A, then B optional (meaning that if option attribute A is selected,then option attribute B is automatically selected as well, but it may bedeselected);

if A, not B (meaning that if option attribute A is selected, then optionattribute B may not be selected);

if A and B, then C (meaning that if option attributes A and B areselected, then option attribute C is automatically selected);

if A, then B or C (meaning that if option attribute A is selected, thenoption attribute B or C must be selected).

Numerous other possible option rules 47 may also be used. Some of theseadditional option rules 47 may be related to the price of theconfiguration as a whole. For instance, if option attribute A isselected, then the user may get a discount on option attribute B or mayget option attribute B for no additional cost.

The limited configuration programs 48 of the limited configurationengine 40 may comprise programs that perform such functions asprocessing the option attributes 46 and option rules 47, performing thelogic in the option rules 47, and formatting the layout of a Web page onthe client's monitor 28. If the Internet will be used with theconfiguration methods and systems, the limited configuration programs 48may comprise client-side programs 50, such as Java, ActiveX, JavaScript,Helper-Viewer, and other plug-ins or other client-side programs, andHTML forms 52. The client-side programs 50, which may be programscapable of running within the browser 42 used with the invention, mayprocess the option attributes 46 and option rules 47 and run the logicfor the processing on the client-side. The HTML forms 52 provide basicWeb page formatting that aids in the presentation of the Web page andallow the developer to specify “links” to other servers 10 and files.Although the HTML forms 52 are represented in FIG. 3 as a part of thelimited configuration programs 48, the HTML forms 52 may also residewithin the limited configuration information 44. The distinction betweenthat data or those programs that reside within the limited configurationinformation 44 or the limited configuration programs 48 is notimportant. This distinction is instead made merely by way of example,and therefore does not limit the invention.

The limited configuration engine 40 may be downloaded from the server 10to the client 12 in response to requests from the user or based onserver 10 logic, both of which will be explained in more detail below.Once resident on the client machine 12, the limited configuration engine40 may reside in memory 22 or within a storage device 26. In some cases,the client 12 may “cache” a limited configuration engine 40 or otherresource obtained over the network so that it is temporarily stored onthe client machine 12 in either the main memory 22 or on disk or onanother storage device 26. The cached copy of the resource may thenremain resident on the client 12 for a defined period and may be easilyaccessed instead of obtaining it over the Internet or network when theresource is needed at a later time. In such cases where cached programsare used, neither the basic operations nor functions of theconfiguration systems and methods nor the transmission of information toa server 10, differ from the cases where cached copies are not used.

2. The Server-Side

FIG. 4 illustrates in block form one embodiment of a portion of thecontents of the server 10 or, more particularly, the application server16. The server 10 contains programs that run on the server-side toprocess requests and responses from the client-side, send the properinformation to the client 12, and perform processes on the server-side.If the Internet is used within an embodiment of the invention, theseprograms may be CGI scripts 62, as depicted in FIG. 4. Within the server10, the full configuration engine 52 resides for each possible subset ofthe full universe of possible products. Each subset may represent adifferent type of configuration, and any number of subsets may bepresent on the server 10. For simplicity, FIG. 4 shows three subsets 50,58, 60. For instance, if the configuration systems and methods will beused for vehicle configurations, each subset may represent a differentmake, series, and model of a vehicle. A different subset 50, 58, 60would therefore exist for each different vehicle model. If theconfiguration systems and methods will be used for computerconfigurations, each subset may represent different manufacturers andtype of computer, such as a laptop or desktop. Although FIG. 4represents one possible embodiment of the organization of informationwithin the server 10, a variety of other organizational schemes known tothose skilled in the art may also be used. As shown in FIG. 4, eachsubset 50, 58, 60 may contain the full configuration engine 52 for oneparticular subset of the configuration system.

Referring now to FIG. 5, the full configuration engine 52 for eachsubset 50, 58, 60 consists of the full configuration information 54 andfull configuration programs 56 for that particular subset. Within thefull configuration information 64 are the full option attributes 65 andthe full option rules 66, which are similar in nature to the optionattributes 46 and option rules 47 within the limited configurationinformation 44 on the client-side. The full option attributes 65 andfull option rules 66 on the server-side, however, may contain moredetailed rules that define relationships among the option attributes 65than those option rules 47 that reside on the client 12. Because theserver 10 will likely not have the constraints on storage and processingof detailed option rules as may the client 12, a full set of optionrules 66 with corresponding interrelationships between option attributes65 may reside on the server 10. Within the full option attributes 65 andfull option rules 66 reside the limited option attributes 46 and optionrules 47 w-hich may be downloaded to the client 12 during aconfiguration session.

The server 10 may receive the full option attributes 65 and full optionrules 66 in a variety of ways. In one embodiment, the technicalinformation for the product or service may be received in paper formfrom the manufacturer or dealer of the product or service, or from aninformation provider that may receive and compile information fordifferent technical products and services. The full option attributes 65and full option rules 66 may then be entered into the system by humanbeings. In another embodiment, a manufacturer, dealer, or informationprovider may transmit an electronic file which includes technicalconfiguration information for a product or service. This technicalconfiguration information may then be electronically processed andentered into the system as full option attributes 65 and full optionsrules 66.

The full configuration engine 52 on the server 10 also contains the fullconfiguration programs 68, which may include of the client-side programs50 and HTML forms 52 which may be sent to the client 12 as limitedconfiguration programs 48 during a configuration session, as well asserver-side programs 70 which process the information and rules in thefull configuration engine 52 on the server 10. Although the client-sideprograms 50 and HTML forms 52 on the server 10 may be the same versionsas those downloaded to the client 12 during a configuration session, theserver-side programs 70, which may be CGI scripts as depicted as numeral62 on FIG. 4, are not downloaded to the client 12, but instead resideand process logic and information on the server 10.

As explained in the background section of this specification, it isgenerally desirable to send only a limited amount of information to theclient 12 due to data transfer time and client 12 response limitations.For this reason, only limited option rules 47 are sent to the client 12in the limited configuration information 44, while a full set of optionrules 66 exist on the server 10. In one embodiment, all of the optionattributes 65 on the server 10 are transferred within the limitedconfiguration information 44 to the client 12, but less than all of theoption rules 66 on the server 10 are sent to the client 12. In thisembodiment, a set of the full option rules 66, which may be much morecomplex than the option rules 47 sent to the client 12, resides only onthe server 10. The user on the client 12 in this embodiment, therefore,may be able to see each potential option attribute 65 for a product, butnot all of the links between each option attribute 65 and other optionattributes 65 will be present on the client 12. The user on the client12, therefore, may be able to select different option attributes 46through an HTML Web page and certain of the option rules 47 on theclient 12 and client-side programs 50 may specify interrelationshipsamong the option attributes 46, yet a full application of the optionrules 66 may be reserved for the server-side.

b. Operation of the Invention

The operation of the configuration systems and methods will first beillustrated as a broad application for any variety of productconfigurations in reference to FIGS. 6 a-6 c, and then for a specificapplication to vehicle ordering methods and systems with reference toFIG. 6 a and FIGS. 7-10. FIGS. 6 a-6 c are block diagram overviews ofthree embodiments of the methods and systems of the present inventionwhich contains sections detailing the exchange of information betweenthe server 10 and the client 12. The server 10, which in one embodimentmay be an application server 16 as shown in FIG. 1, contains the subsets50, 58, 60 of full configuration engines 52 as shown in FIGS. 4 and 5.

1. Tight Configuration Embodiment

FIG. 6 a shows a block diagram overview of information exchange in atight configuration embodiment of the present invention. This embodimentmay be referred to as a “tight” configuration embodiment because theuser selects each selectable option until a viable configuration isassembled.

a. Subset Selection

To begin a configuration session, the user may access the page on theserver 10 associated with the configuration system to initiate asession. In an embodiment of the invention using the Web, such a pagemay be an HTML Web page. A registration or enrollment session mayrequire the user to submit certain information about himself or herselfin order to use the configuration system. The server 10 may then send tothe client 10 a variety of subset choices 100 of products from which toassemble a configuration. The subset choices 100 may be presented to theuser on the client 10 through an HTML Web page on the client's monitor28. Because a limited amount of space may be available in the mainmemory 22 of the client 12, the amount of information presented for eachsubset choice 100 may be limited to a discrete amount. As previouslynoted, each subset may represent a different make, model, or series of aproduct. After the user selects a desired subset 102, which may then beuploaded to the server 10 as shown in FIG. 6 a, a second set of subsetchoices 100 may be presented to the user to further refine the subsetchoice 100 for a configuration session. In this manner, the exchange ofsubset choices 100 and desired subsets 102 between the client 12 and theserver 10 may be repeated a number of times until a discrete amount ofdata for which the client 12 has space may be downloaded from the server10 to the client 12. In a configuration system with only one or a fewsubset choices 100, these subset choices 100 may be presented to theuser on the client 12 in one page, or may be intertwined with laterpages described below which may be used to select option attributes 46during a configuration session.

The user's desired subset 102 represents initial product configurationdata, which the server 10 uses to allocate a limited configurationengine 40 to the client 12. Different limited configuration engines 40will be downloaded to the client 12 from the server 10 for eachdifferent desired subset 102.

b. Preliminary Viability Check

After a small enough segment of data to operate a configuration sessionon the client 12 may be downloaded to the client 12, a limitedconfiguration engine 40 (shown as numeral 104 in FIG. 6 a duringtransfer to the client 12 from the server 10) is downloaded to theclient 12. As explained in connection with FIG. 3, the limitedconfiguration engine 40 may contain limited configuration information 44and limited configuration programs 48. In one embodiment, the limitedconfiguration engine 40 contains HTML forms 52 for presentation ofinformation on the client 12. The option attributes 46 of the limitedconfiguration information 44 may therefore be presented to the userthrough a Web page, and the limited option rules 47 may perform somelimited operations on the client 12. In one embodiment, one set oflimited configuration programs 48 may be downloaded to the client andused with any given subset which the user selects. In this embodiment,only the limited configuration information 44 would differ from onesubset to another.

The Web page presented to the user on the client 12 may interactivelyelicit information from the user through various interfaces known tothose skilled in the art, such as drop-down boxes, scroll bars, or checkboxes. As the user selects various option attributes 46 in the Web page,the option rules 47 and the client-side programs 50 on the client 12 mayupdate the screen to reflect the interrelationships of the variousoption attributes 46 selected. Thus, through the use of Java, ActiveX,JavaScript, Helper-Viewer, or other plug-ins or client-side programs 50known to those skilled in the art, in conjunction with the limitedconfiguration information 44 and limited configuration programs 48available on the client 12, the user's choices may be preliminarilychecked for viability on the client machine 12. Because the informationon the client 12 in the limited configuration engine 40 will be atruncated version of the full configuration engine 52 on the server 10,the validity of the user's desired configuration may only bepreliminarily checked. In one embodiment, if a user's selection is notviable, the Web page will not allow the user to select a certain optionattribute 46. In addition, the Web page may update the user aftervarious choices on the client's monitor 28, so that information, such asan approximate price of the product, may be updated dynamically on theclient 12 as the user configures a product by selecting optionattributes 46.

In one embodiment, it is important to note that the limitedconfiguration engine 40 downloaded to the client 12 (as shown as numeral104 in FIG. 6 a) may contain a discrete segment of information so thatthe user may make a variety of choices on a Web page, yet do so withoutactive interaction with the server 10. This offers the advantage of alimited amount of time spent downloading information to and uploadinginformation from the client 12. As the user interacts with the Web pageto select choices for a configuration, this limited processing andchecking may be done on the client 12 instead of on the server 10.

c. Full Viability Check

When the user has completed entering his or her desired configuration,the user can click on the “submit” button to upload the desiredconfiguration 106 to the server 10, as shown in FIG. 6 a. This desiredconfiguration 106 is the user's proposed product configuration, which,though it has been preliminarily checked for viability using the limitedoption attributes 46 and limited option rules 47 on the client 12, maynot be viable when checked against the full option rules 66 on theserver 10. Because only a preliminary check of the user's desiredconfiguration 106 was performed on the client 12 using the limitedconfiguration engine 40, the complete validity of the configuration maybe determined on the server 10, which contains a full set of the optionrules 66 as well as server-side programs 70. The server 10 thereforedetermines the viability of the desired configuration using the fullconfiguration engine 52. As explained above, this full configurationengine 52 may be a more complete and detailed version of the limitedconfiguration engine 40 on the client 12. For example, many of theinterrelationships between different option attributes may exist only onthe server 10 due to limited space in the main memory 22 of the client12. In particular, full pricing information, which may be complex due topackage deals, discounts, and upgrade pricing deals, may reside only onthe server 10.

In one embodiment, all option attributes for a given subset may bepresented to the user on the client 12, and it may be only a detailedprocessing of the user's desired configuration that is uniquely carriedout on the server 10, in part because the client-side programs 50 andoption rules 47 provided to the client 12 may not be sophisticatedenough to carry out this processing on the client 12 due to limitedspace. After the viability status of the desired configuration 106 isdetermined at the server 10, the viability status of the configuration108 may be downloaded to the client 12 as shown in FIG. 6 a duringtransfer from the server 10 to the client 12.

If the desired configuration 106 is viable, an order report 112 may alsobe downloaded to the client 12. This order report 112, which may bedownloaded to the client 12 in place of or in addition to thedownloading of the viability of the configuration 108, may report thefinal price of the configuration as well as a summary of each of theoptions selected by the user.

If the desired configuration 106 is not viable, the viability status ofthe configuration 108 sent from the server 10 to the client 12 mayreport the unresolved viability issues to the user on the client 12. Forinstance, the Web page used for presenting the options to the user onthe client 12 may again be presented to the user on the client 12 withcertain option attributes 46 highlighted with a note describing aproblem with the desired configuration. Similarly, if the user does notselect a choice from certain option attributes 46 for which a selectionis mandatory, the user may be presented with a reminder to select one ormore of those option attributes 46. In one embodiment, if the desiredconfiguration is not viable, the server 10 may download updated limitedconfiguration information 44 and updated limited configuration programs48 to the client 12. The server 10, therefore, may allocate and downloadadditional information to the client 12, which may include additionallimited option attributes 46 and limited option rules 47, so that theuser may assemble a viable configuration. In another embodiment, onlyadditional option rules 47 may be allocated to the client 12 at thistime. The updated limited configuration engine 40 may then be used onthe client 12 by the user for entering a desired configuration.

In this manner, the user will be prompted to assemble a viableconfiguration on the client 12 through any number of communications withthe server 10. This new desired configuration 110 may then be uploadedto the server 10. When such a viable configuration has been entered bythe user, submitted to the server 10, and approved as being viable bythe server 10, an order report 112 may be sent to the client 12.

The configuration methods and systems of the present invention maypresent any number of Web pages with various option attributes 46 to theclient 12 in the manner described above, such that the acts describedabove may be repeated any number of times with different optionattribute choices until a full and viable configuration has beenassembled. When such a full and viable configuration has been assembled,an order 114 may be electronically sent from the server 10 to themanufacturer or service provider so that the configuration may beassembled or ordered.

2. Pre-Configuration Embodiment

FIG. 6 b shows a block diagram overview of information exchange in apre-configuration embodiment of the present invention. Much like thetight configuration embodiment described above, in this embodiment theserver 10 may send to the client 12 a variety of subset choices 100 b ofproduct embodiments from which to assemble a configuration. The userthen selects a pre-configuration option, as denoted by numeral 101 inFIG. 6 b. The subset choices 100 b presented to the client 12,therefore, may allow the user to select the pre-configuration embodimentin this embodiment. The pre-configuration option allows the user toselect product configurations which have already been configured, eitherin prior configuration sessions with the user or by the server 10. Forexample, popular product configurations could be presented as options tosave the user time in configuring a product. In one embodiment, each newconfiguration the user develops could be saved so that the user maylater select it as a pre-configured product.

After the pre-configuration data is uploaded to the server 10, theserver 10 performs a viability check on that data, much like describedabove for the tight configuration embodiment. This information sent fromthe client 12 to the server 10, which may also be called initial productconfiguration data, should typically result in a viable configuration inthis embodiment, because a pre-configured product has been chosen by theuser. The pre-configuration option may, however, only select some of theoptions of the product in one embodiment, such that the user may stillneed to complete the configuration by selecting the rest of the options.Numeral 108 b in FIG. 6 b shows the server 10 downloading to the client12 the viability of the pre-configured product or further tools forconfiguration. For example, limited configuration information 44 andlimited configuration programs 48 may be downloaded to the client 12 sothat the user can complete the configuration or, if the configuration isnot viable, select different options to assemble a viable configuration.After the user has completed assembling a further desired configuration(if needed because the pre-configured product is either not viable or isnot complete), this further desired configuration 110 b is uploaded tothe server 10. After any number of iterations of the above describedacts and after the server 10 finds a desired configuration viable, anorder report 112 b may be sent to the client 12.

3. Loose Configuration Embodiment

FIG. 6 c shows a block diagram overview of information exchange in aloose configuration embodiment of the present invention. This embodimentmay be referred to as a “loose” configuration embodiment because theuser generally enters desired options in free text form and the server10 finds the closest viable configuration matching to those desiredoptions.

Much like the embodiments described above, in this embodiment the server10 may send to the client 12 a variety of subset choices 100 c ofproduct embodiments from which to assemble a configuration. The userthen selects a loose fit option, as denoted by numeral 103 in FIG. 6 c.The subset choices 100 c presented to the client 12, therefore, mayallow the user to select the loose fit embodiment in this embodiment.When the user selects the loose fit embodiment, the user may then enterin a dialog box presented to the user on the client 12 desired optionsin free text or other similar form. This loose fit information 103 isthen uploaded to the server 10. In one embodiment, a human beingprocesses the desired options to find the closest viable configuration.In another embodiment, the server 10 processes the desired options andfinds the closest viable configuration. In this embodiment, the server10, therefore, may run a CGI script 62 using the full option attributes65 and full options rules 66 to find the closest viable configuration.

Numeral 108 c in FIG. 6 c shows the server 10 downloading to the client12 the viability of the desired configuration and, if needed, furtherconfiguration tools. In one embodiment, if a viable configuration maynot be developed which is similar to the user's loose fit information,therefore, further configuration tools (in the form of a limitedconfiguration engine 40) may be sent to the client 12 from the server10. The user may then further develop the product configuration and afurther desired configuration 110 c may be uploaded from the client 12to the server 10. Eventually, after a viable configuration has beenassembled through any number of iterations of the above acts, an orderreport 112 c may be sent from the server 10 to the client 12.

c. Vehicle Ordering Embodiment

FIGS. 7-11 detail one embodiment of the configuration methods andsystems described above for vehicle configuration and ordering.

1. Business Context

As an introduction to a vehicle ordering system, FIG. 7 illustrates thegeneral business process of a vehicle ordering system showing the flowof information between four different entities: the user or client 12,the configuring party represented by the server 10, the manufacturer 180of the vehicle, and the vehicle dealer 190. A configuration systemoperated by a configuring party may be important and useful for a numberor reasons. First, a configuring party may assist companies indeveloping and maintaining large or small fleets of vehicles throughsuch systems. If a company has a large fleet of vehicles to maintain, aconfiguring party may be able to assist in record-keeping for thevehicles (such as for maintenance or license tab renewal), and mayprovide an interface between the company and vehicle dealers to simplifyvehicle configuration and ordering. Second, because a configuring partymay be ordering large numbers of vehicles, the configuring party may geta discount on vehicle prices from the dealers. Finally, the configuringparty may aid in the financing process for a company's fleet ofvehicles, such that the fleet of vehicles may be financed or leased inthe aggregate through the configuring party.

At step 200, the server 10 receives make and model information includingdetails on options for makes, models, and series, from the vehiclemanufacturers 180. It is important to note that the manufacturer setsthe options and interrelationships between options, including pricing,for various makes and models. The complexity of these options andinterrelationships may make it impractical to perform all of the logicassociated with a vehicle configuration on the client 12. Thisinformation may be updated periodically, as depicted in step 202, sothat all of the latest options may be available on the server 10. Atstep 204, the server 10 may send information to the client 12 regardingvehicle ordering. At block 206, the client 12 orders a vehicle using avehicle ordering system, which will be explained in greater detailbelow. At block 208, a vehicle price is delivered to the client 12 forsuch a vehicle, and the client 12 then reports the decision back to theserver 10 to order the vehicle at step 210. After the vehicleconfiguration is delivered to the manufacturer at step 212, the statusof the vehicle construction and/or delivery is delivered to the server10.

At step 216, the server 10 inquires with the dealer as to the deliveryof the vehicle. A contract may be delivered to the server 10 at step 218and confirmation of the vehicle order may be delivered to the dealer atstep 220. At step 222, the status of the vehicle configuration may bedelivered to the server 10. At step 224, the vehicle is delivered to thedealer for delivery to the client 12 at step 226. Finally, the client 12may deliver an old vehicle to the dealer at step 228.

2. Vehicle Ordering System and Methods

FIG. 8 details in block diagram form the flow of the vehicleconfiguration methods and systems which may be used for developing avalid vehicle configuration and for ordering a vehicle. At block 300,the user enters the vehicle configuration system to begin theconfiguration process. Initially, the server 10 may download a varietyof options to the client 12, including, as depicted in FIG. 8, apre-configuration option 306 and the option for the user to selecteither a loose match 304 or a tight match 302 of option attributes withviable vehicle configurations. These three embodiments, which weredescribed above in a general product configuration embodiment, aid theserver 10 in determining how much and which limited configurationengines 40 to download to the client 12 from the server 10.

If the user chooses a loose match 304 between the desired options andviable configurations, a freeflow text screen may be presented to theuser at block 308 on the client 12 to enter desired vehicle optionattributes in free text form. When the user clicks the submit button thedesired configuration is uploaded to the server 10 (denoted by block 310in FIG. 8 and as the loose fit information 103 in FIG. 6 c). In oneembodiment, the server 10 may determine the closest match to the loosefit information 103 by performing a word matching analysis to find aclose match. Further configuration tools may need to be presented to theuser on the client 12 to further develop a configuration, as describedabove, such that any number of interactions with the server 10 may benecessary to develop a viable configuration. In another embodiment, ahuman being may process the desired option attributes to find theclosest possible match. As depicted at block 334 in FIG. 8 and as theorder report 112 c in FIG. 6 c, an order report 112 c may then bedelivered from the server 10 to the client 12.

In the typical scenario where a user desires to select all of thedesired option attributes of a vehicle in the tight configurationembodiment (as in FIG. 6 a), the user may be prompted to select certainchoices through HTML Web pages on the client 12. In this embodiment, theuser may first be prompted to select a make of a vehicle, as depicted inblock 312 of FIG. 8. FIG. 9 illustrates one such HTML Web page in whicha scroll box exists for the user to select a vehicle make 400. FIG. 9 isshown by way of example only, and it is noted that more than one Webpage could be used for the functions illustrated in FIG. 9 and any formfor this page known to those skilled in the art could be used. After theuser selects a make 400 of vehicle, that information may be uploaded tothe server 10, which is denoted as block 314 in FIG. 8. FIG. 6 a denotesthis interaction between the client 12 and the server 10 by theuploading of a desired subset 102 to the server 10. After the userselects a make 400 of vehicle and this information is uploaded to theserver 10, the server 10 may send another set of subset choices 100 tothe client 12 so that the user may select a series of car. FIG. 6 adepicts the transfer of these subset choices 100 from the server 10 tothe client 12.

The user may then select a series of vehicle, as shown in scroll box 402in FIG. 9 and block 316 in FIG. 8. A similar procedure is then followedas when a make of vehicle was selected by the user. The desired subset102 is uploaded to the server 10, as shown in block 318 in FIG. 8. Theserver 10, in turn, may then download additional subset choices 100 tothe client 12, as shown in FIG. 6 a. Similarly, the user may then selecta model of vehicle, as shown in scroll box 404 in FIG. 9 and block 320in FIG. 8. This desired subset 102 may then be uploaded to the server10, as shown in FIG. 6 a and by block 322 in FIG. 8. In this manner, theuser narrows the possible product configurations such that, uponreceiving the subset choices 100 (or initial product configuration data)the server 10 may allocate and download an appropriate limitedconfiguration engine 40 to the client 12.

Block 324 in FIG. 8 depicts the process in which the user may select avariety of options for the chosen make/series/model of vehicle selected.In order to present these option attributes to the user on the client12, the limited configuration engine 40 corresponding to themake/series/model is downloaded to the client 12, which is depicted asnumeral 104 in FIG. 6 a. As previously stated, the limited configurationengine 40 downloaded from the server 10 to the client 12 is a limitedversion of the full configuration engine 52 on the server 10corresponding to the particular make/series/model of the vehicleselected for configuration. In one embodiment, this limitedconfiguration engine 40 presents a full set of the option attributes tothe user on the client 12, but does not contain a full set of the optionrules that exist on the server 10. Because there are a large number ofoption rules and interrelationships between option attributes forvehicle configurations, a full set of these option rules remains on theserver 10, where a full and final check of the viability of the desiredconfiguration may be performed. In one embodiment, as the user selectsoption attributes, the price of the vehicle configuration may bedynamically updated to reflect an approximate price of the vehicle asconfigured.

FIG. 10 shows one potential embodiment of an HTML Web page which may bepresented to the user for selecting option attributes (block 324 in FIG.8), although any page known to those skilled in the art may be presentedto the user for this purpose. A number of option attributes 500, 502,504, such as the type of engine, axles, and other vehicle optionpackages, may be presented for the user's choice. FIG. 10 also shows theprice 506 which may be listed for each option attribute. As previouslydescribed in connection with the invention, the limited configurationengine 40 and the Java, ActiveX, JavaScript, Helper-Viewer, or otherplug-ins or client-side programs 50 on the client 12 may perform alimited check on the viability of a desired configuration as the userenters or chooses option attributes. For example, certain optionattributes 46 may be automatically selected or made not available forselection upon the selection of other option attributes 46 by the user.When the user completes the desired configuration, the user may click onthe “submit” or “next” button, which uploads the desired configurationfrom the client 12 to the server 10. This act of uploading the desiredconfiguration 106 is shown in FIG. 6 a and is depicted as block 326 inFIG. 8.

The server 10 performs a check on the viability of the desiredconfiguration using the full configuration engine 52. As indicatedabove, this full configuration engine 52 on the server 10 contains moredetailed option rules 66 and full configuration programs 68 to check theviability of the desired configuration. If the desired configuration isviable, the server 10 may download another limited configuration engine40 to the client 12 so that the user may select the desired color schemefor the vehicle, as indicated in block 330 in FIG. 8. In one embodiment,this color selection page may be combined with the option selection pageat block 324 of FIG. 8. In this embodiment, a separate page for theselection of a color scheme may not be necessary. In another embodiment,this color selection page may be a separate HTML form for which aseparate process of uploading a desired color scheme to the server 10may be necessary, which is indicated on FIG. 8 as block 332.

If the desired configuration is viable, i.e., if the selected optionattributes in the desired configuration may be combined to form a validvehicle configuration, the server 10 may download to the client 12 anorder report 112 summarizing the selected configuration and/or adocument detailing the viability of the desired configuration. If thedesired configuration is not viable, i.e., where the full option rulesare not met and option attributes must therefore be changed to build aviable configuration, the document detailing the viability of thedesired configuration may be a version of the HTML form used for optionselection (as shown in FIG. 10), with certain options highlighted orwith explanations as to the necessity to change certain optionattributes. A limited configuration engine 40, which may be similar tothat transmitted to the client 12 as numeral 104 in FIG. 6 a, may alsobe downloaded to the client 12 as part of the viability of theconfiguration 108 to allow the user to refine the vehicle configuration.In this manner, further configuration tools, such as additional limitedoption attributes 46 and limited option rules 47, may be allocated anddownloaded from the server 10 to the client 12 if a desiredconfiguration is not viable.

This process of uploading a desired configuration (numeral 106 in FIG. 6a) from the client 12 to the server 10 and downloading the viabilitystatus of the configuration and tools for resolving open viabilityissues (numeral 108 in FIG. 6 a) may be repeated until a viableconfiguration has been assembled and an order report 112 summarizingthat configuration may be downloaded to the client 12. Block 334 of FIG.8 and numeral 112 in FIG. 6 a represent this order report which isdownloaded from the server 10 to the client 12. Such an order report orconfiguration summary may appear similar to the configuration summarydepicted as FIG. 11. FIG. 11 shows a Web page illustrating aconfiguration summary and containing a total invoice price 600, themake, model, and series of car 602, as well as a summary of the optionalequipment 604 (option attributes) for the vehicle. This Web page may bea one-page summary or a multi-page summary showing the options for thevehicle configuration.

FIG. 8 also depicts as block 306 the possibility that pre-configuredvehicles may be used to aid in the configuration process, which is shownin FIG. 6 b for a general product configuration embodiment. A user, forexample, may have one or more configurations that he or she commonlyuses. These configurations may be saved (on either the client 12 or theserver 10) to be used later. In one embodiment, each time a userconfigures a vehicle, that configuration may be saved for later use.Starting a configuration session with a pre-configured or partiallypre-configured vehicle may simplify the configuration process. FIG. 8illustrates one scenario where the pre-configured information consistsof the make/model/series information for the vehicle, but the user stillselects the options for that give make/model/series. A second scenarioshown in FIG. 8 depicts the possibility that the options are alsopre-configured for the vehicle, so that only the color scheme must beselected by the user during a configuration session.

After a configuration session has been completed and a viableconfiguration has been assembled, an order may be sent from the server10 to the vehicle manufacturer or vehicle dealer to order the vehicle.This order is represented by numeral 114 in FIG. 6 a, FIG. 6 b, and FIG.6 c.

d. Summary

The present invention provides methods and systems for computerizedconfigurations in network systems containing one or more servers 10 andone or more clients 12. The methods and systems allocate the loadbetween the server-side and the client-side of such a network and reducethe amount of time spent uploading or downloading information betweenthe client 12 and the server 10. The systems and methods utilizeexisting computer systems and software packages. The methods and systemsaccomplish these tasks by sending only a limited configuration engine 40from the server 10 to the client 12 to perform a discrete amount oflogic on the client 12. The user's interaction with the client 12, whichmay be through an HTML Web page using client-side programs 50, will notrequire communication with the server 10 while the user entersconfiguration options and limited logic is performed on those options.Because only a limited configuration engine 40 is sent from the server10 to the client 12, a final check on the viability of the desiredconfiguration may be performed on the server 10 after a desiredconfiguration is uploaded to the server 10 from the client 12.

The methods and systems of the present invention are particularly usefulfor technical and complex configurations, such as vehicle or computerconfigurations, where a large number of option attributes exist and alarge number of option rules and interrelationships exist betweenoptions. For such systems, it may be unpractical to transmit the fulllogic of the configuration system from the server 10 to the client 12,yet it may be undesirable to have repeated communications with thenetwork as associated with common server-side systems. The methods andsystems of the present invention aid in the allocation of data andinformation between the server 10 and the client 12, so that only alimited amount of information and data will be downloaded to the client12 from the server 10. The full data and information is retained on theserver 10 for a final check on the viability of desired configurations.

While the present invention has been described with reference to severalembodiments thereof, those skilled in the art will recognize variouschanges that may be made without departing from the spirit and scope ofthe claimed invention. Accordingly, this invention is not limited towhat is shown in the drawings and described in the specification butonly as indicated in the appended claims. Any numbering or ordering ofelements in the following claims is merely for convenience and is notintended to suggest that the ordering of the elements of the claims hasany particular significance other than that otherwise expressed by thelanguage of the claims.

1-40. (canceled)
 41. A method for creating technical configurations and electronically delivering order reports to a computer network client comprising: receiving on-line from a user on the client a selection of a desired product selected from a set of products, wherein the selection represents initial product configuration data of the desired product; downloading to the client from a server limited configuration information that is a subset of a full set of configuration information and limited configuration programs that are a subset of a full configuration programs, the limited configuration information including option attributes of the desired product and limited option rules that define relationships therebetween, wherein the limited configuration information and limited configuration programs are determined at the server based on the initial product configuration data of the desired product, and wherein the limited configuration information and the limited configuration programs are downloaded to the client responsive to the user selection; requesting a desired technical configuration of the desired product from the user on the client, wherein selections for the option attributes of the desired product are elicited from the user; preliminarily checking the viability of the desired technical configuration of the desired product at the client, wherein the limited configuration programs verify conformity of the user selections for the option attributes with the limited option rules; receiving at the server the desired technical configuration from the client subsequent to preliminarily checking viability of the desired technical configuration; performing a full check at the server on the viability of the desired technical configuration, wherein the full set of configuration programs verify conformity of the user selections for the option attributes with the full set of option rules; preparing and transmitting to the client an electronic order report, if the full check at the server is successful; and downloading to the client from the server additional option rules that are a subset of the full set of option rules and receiving from the client at the server a second desired technical configuration developed on the client and verified on the client for conformity with the additional option rules, if the full check at the server is not successful.
 42. In a computer network having at least one server connectable to at least one client, a method for creating vehicle configurations and electronically delivering order reports to at least one client, the method comprising: (a) interactively eliciting from a user on the at least one client a desired make, model, and series for a vehicle; (b) in response to the user's desired make, model, and series for a vehicle, downloading from the at least one server to the at least one client limited configuration information and limited configuration programs; (c) interactively eliciting from the user on the at least one client a desired vehicle configuration and preliminarily checking at the at least one client the viability of the desired vehicle configuration using the limited configuration information and the limited configuration programs; (d) uploading the desired vehicle configuration from the at least one client to the at least one server and performing a full check on the viability of the desired vehicle configuration using full configuration information and full configuration programs on the at least one server; and (e) responsive to the full check, preparing and outputting on the at least one client an electronic order report.
 43. A method for developing a product configuration in a client-server environment, wherein the server has full option attributes and full option rules, the method comprising: (a) receiving initial product configuration data from a user on a client; (b) in response to the initial product configuration data, allocating limited option attributes and limited option rules to the client by downloading such limited option attributes and limited option rules to the client; (c) receiving from the client a first proposed product configuration developed from client processing of the limited option attributes and limited option rules; (d) in response to the proposed product configuration and application at the server of the full option attributes and full option rules to the proposed product configuration, allocating and downloading to the client additional option rules; and (e) receiving from the client a second proposed product configuration developed from client processing of the limited option attributes and additional option rules.
 44. The method of claim 43 wherein act (b) further comprises allocating an HTML page and client-side programs to the client by downloading such an HTML page and client-side programs to the client.
 45. The method of claim 43 wherein the act of receiving initial product configuration data from a user on a client includes enabling the user to specify whether an exact match or a loose match is desired between the desired technical configuration and a viable configuration.
 46. The method of claim 43 wherein the act of receiving initial product configuration data from a user on a client includes enabling the user to select templates of pre-configured product configurations.
 47. In a computer network having at least one server connectable to at least one client, an apparatus for creating technical configurations and electronically delivering order reports to at least one client, the apparatus comprising: (a) a limited configuration engine, wherein the limited configuration engine is downloaded from the at least one server to the at least one client in response to data elicited from the at least one client, and wherein the limited configuration engine contains programs to interactively elicit from a user a desired configuration to be uploaded to the at least one server; and (b) a full configuration engine on the at least one server, wherein the full configuration engine contains instructions for performing a full check on the viability of the desired configuration.
 48. The apparatus of claim 47 wherein the limited configuration engine comprises limited configuration information and limited configuration programs.
 49. The apparatus of claim 47 wherein the limited configuration engine comprises limited option attributes and limited option rules.
 50. The apparatus of claim 47 wherein the limited configuration engine contains programs for performing a limited check on the viability of the desired configuration.
 51. The apparatus of claim 47 wherein the full configuration engine comprises full configuration information and full configuration programs.
 52. The apparatus of claim 47 wherein acts of uploading and downloading are carried out over the Web.
 53. The apparatus of claim 47 wherein the full configuration engine is a CGI script.
 54. The apparatus of claim 47 wherein the limited configuration engine comprises an HTML page and client-side programs.
 55. The apparatus of claim 54 wherein the client-side programs comprise a plug-in or helper-application.
 56. The apparatus of claim 54 wherein the client-side programs include one or more programs selected from Java, JavaScript, ActiveX, and Helper-Viewer programs.
 57. A computer-readable medium whose contents cause a computer system to perform a procedure for developing a product configuration in a client-server environment, the computer-readable medium having client programs and server programs with functions for invocation, by performing the acts of: (a) interactively eliciting from a user on the client a desired subset of possible products having technical configurations; (b) in response to the user's desired subset of possible products having technical configurations, downloading from the server to the client limited configuration information and limited configuration programs; (c) interactively eliciting from the user on the client a desired technical configuration and preliminarily checking at the client the viability of the desired technical configuration using the limited configuration information and the limited configuration programs; (d) uploading the desired technical configuration from the client to the server and performing a full check on the viability of the desired technical configuration using full configuration information and full configuration programs on the server; and (e) responsive to the full check, preparing and outputting on the client an electronic order report.
 58. The computer-readable medium of claim 57, wherein the computer-readable medium further comprises programs with functions for invocation by performing the acts of: (f) in response to the act of performing a full check on the viability of the desired technical configuration on the server, allocating and downloading to the client additional limited configuration information; and (g) receiving from the client a second desired technical configuration developed from client processing of the additional limited configuration information. 